Popis skriptu

1. Struktura skriptu

2. Prom∞nnΘ urΦenΘ pro zßpis

2.1. PovinnΘ prom∞nnΘ pou₧φvanΘ v procedu°e StatInit

Version, MsgSizes, Countries

2.2. NepovinnΘ prom∞nnΘ pou₧φvanΘ v procedu°e StatInit

Author, CountryCode, Prefixes, MsgTime, QueueTime, AoDAvail, IdentAvail, FlashAvail, AoDOn, AoDOff, IdentOn, IdentOff, FlashOn, FlashOff, Official, PasswordLabel, UserPar1Label, UserPar2Label, UserPar3Label, UserPar4Label, Info, PrefSubst

2.3. NepovinnΘ prom∞nnΘ pou₧φvanΘ v procedu°e DynInit nebo Send

IdentActive, AodActive, FlashActive

3. Prom∞nnΘ urΦenΘ pouze pro Φtenφ (funkce) pou₧φvanΘ v procedu°e DynInit nebo Send

IPhone, ICode, Prefix, PhoneNP, Message, Email, Subject Phase, MyEmail, MyName, MyICode, MyPrefix, MyPhoneNP, Password, UserPar1, UserPar2, UserPar3, UserPar4

4. Procedury a funkce pou₧φvanΘ v kdekoliv ve skriptu

function Translate(Key);

5. Procedury a funkce pou₧φvanΘ v procedu°e DynInit nebo Send

procedure GetPage(URL, Message);
procedure PostPage(URL, Fields, Message);
procedure GetPageEx(Frame: integer; URL, Message; Delay: integer);
procedure PostPageEx(Frame: integer; URL, Fields, Message; Delay: integer);
procedure AddResult(Search, Print; Action: integer);
procedure AddLog(Message, Recipient; Error: Boolean; Info);
function GetAoD;
function GetFlash;
function GetIdent;
function MD5(Source);
function FindTextBetween(StartStr, EndStr);
function GetHTMLSource;
function GetPictureInput(URL: String): String;

5.1. Konstanty pou₧φvanΘ v AddResult

Success, Retry, Queue, QueueWhen, Cancel, Resume, Exceeded, SuccessContinue

6. P°φklady skript∙




1. Struktura skriptu

Syntaxe skriptu je zalo₧ena na Object Pascalu, ve v∞tÜin∞ je shodnß. OdliÜnosti a dalÜφ informace naleznete na http://www.dwscript.com.

Skript musφ obsahovat dv∞ povinnΘ procedury StatInit a Send, dßle m∙₧e obsahovat procedury DynInit a AfterKeyPress a libovoln² poΦet u₧ivatelem definovan²ch procedur a funkcφ. Skript mß nßsledujφcφ strukturu:

procedure StatInit;
begin
...
end;

...
volitelnΘ procedury a funkce
...

procedure Send(Index: integer);
begin
...
end;

case ParamStr(0) of
'STATINIT' : StatInit;
'SEND' : Send(Phase);
'DYNINIT' : DynInit; // jen pokud jsou funkce definovanΘ (volitelnΘ)
'KEYPRESS': AfterKeyPress; // jen pokud jsou funkce definovanΘ (volitelnΘ)
end;

StatInit - statickß inicializace prom∞nn²ch, smφ se p°i°azovat pouze konstanty, povolenß je pouze funkce Translate. Provßdφ se p°i startu aplikace (naΦφtßnφ skriptu).
DynInit - dynamickß inicializace prom∞nn²ch, smφ se pou₧φt libovolnß prom∞nnß Φi funkce. Provßdφ se p°ed odeslßnφm zprßvy.
KeyPress - dynamickß inicializace prom∞nn²ch, smφ se pou₧φt libovolnß prom∞nnß Φi funkce. Provßdφ se p°i stisku klßvesy v editoru.
Send(Index: integer) - vlastnφ odesφlßnφ zprßv, v parametru Index je fßze odesφlßnφ (Φφslovßno od nuly).

2. Prom∞nnΘ urΦenΘ pro zßpis

2.1. PovinnΘ prom∞nnΘ pou₧φvanΘ v procedu°e StatInit

Version: Float;
Verze skriptu ve formßtu major.minor, nap°. 1.2.

MsgSizes: String;
St°ednφkem odd∞len² seznam veliskostφ zprßv, nap°. '153;156;156;156;156'.

Countries: String;
St°ednφkem odd∞len² seznam zkratek zemφ do kter²ch skript odesφlß, nap°. 'CH;DE;AU'. Pro mezinßrodnφ skripty se pou₧φvß 'INT', pro ostatnφ viz tabulka k≤d∙ stßt∙.

2.2. NepovinnΘ prom∞nnΘ pou₧φvanΘ v procedu°e StatInit

CountryCode: integer;
K≤d stßtu, do kterΘho skript odesφlß. Pou₧φvß se jen k automatickΘmu p°i°azovßnφ skriptu u adresßta.

Author: String;
JmΘno autora skiptu a za st°ednφkem kontaktnφ URL nap°. 'DreamTeam;mailto:kubiksms@dreamcom.cz'

Prefixes: String;
St°ednφkem odd∞len² seznam p°edΦφslφ, na kterΘ dan² skript odesφlß, nap°. '603;604;605;73'

MsgTime: integer;
╚as v sekundßch, kter² vymezuje interval mezi odeslßnφm 2 po sob∞ jdoucφch zprßv.

QueueTime: String;
╪et∞zec na rozpoznßnφ doby, za kterou bude mo₧no odesφlat dalÜφ zprßvu, nap°. 'NAME="smstime" VALUE="'.

AoDAvail: Boolean;
SMS brßna podporuje oznßmenφ o doruΦenφ zprßvy (doruΦenka).

IdentAvail: Boolean;
SMS brßna podporuje identifikaci.

FlashAvail: Boolean;
SMS brßna podporuje odeslßnφ zprßvy pouze na displej mobilu (flash).

AoDOn: String;
╪et∞zec, kter² definuje zapnutou doruΦenku (°et∞zec vrßtφ fce GetAoD p°i zapnutΘ doruΦence).

AoDOff: String;
╪et∞zec, kter² definuje vypnutou doruΦenku (°et∞zec vrßtφ fce GetAoD p°i vypnutΘ doruΦence).

IdentOn: String;
╪et∞zec, kter² definuje zapnutou identifikaci (°et∞zec vrßtφ fce GetIdent p°i zapnutΘ identifikaci).

IdentOff: String;
╪et∞zec, kter² definuje vypnutou identifikaci (°et∞zec vrßtφ fce GetIdent p°i vypnutΘ identifikaci).

FlashOn: String;
╪et∞zec, kter² definuje zapnutou funkci flash (°et∞zec vrßtφ fce GetFlash p°i zapnutΘ flash sms).

FlashOff: String;
╪et∞zec, kter² definuje vypnutou funkci flash (°et∞zec vrßtφ fce GetFlash p°i vypnutΘ flash sms).

Official: Boolean;
Pokud nastaveno na True, je skript neoficißlnφ a nebude automaticky dopl≥ovßn u adresßt∙.

PasswordLabel: String;
Skript vy₧aduje p°ihlßÜenφ heslem, hodnota je text, kter² se zobrazuje na kart∞ skript∙.

UserPar1Label: String;
U₧ivatelskß prom∞nnß pou₧φvanß p°i odesφlßnφ zprßvy, hodnota je text, kter² se zobrazuje na kart∞ skript∙. Obvykle se jednß o u₧ivatelskΘ jmΘno (p°i p°ihlaÜovßnφ).

UserPar2Label: String;
Popis dalÜφ u₧ivatelskΘ prom∞nnΘ.

UserPar3Label: String;
Popis dalÜφ u₧ivatelskΘ prom∞nnΘ.

UserPar4Label: String;
Popis dalÜφ u₧ivatelskΘ prom∞nnΘ.

Info: String;
Dopl≥ujφcφ informace o skriptu, kterΘ se zobrazujφ p°i kliknutφ na i v hlavnφm okn∞ a na kart∞ skript∙.

PrefSubst: String;
St°ednφkem odd∞len² seznam substitucφ p°edΦφslφ, nap°. '601=1;602=2;606=3' znamenß, ₧e p°edΦφslφ 601 bude nahrazeno hodnotou 1 atd.

2.3. NepovinnΘ prom∞nnΘ pou₧φvanΘ v procedu°e DynInit nebo Send

IdentActive: Boolean;
Vracφ True, pokud je u odesφlanΘ zprßvy aktivovßna identifikace.

AodActive: Boolean;
Vracφ True, pokud je u odesφlanΘ zprßvy aktivovßna doruΦenka.

FlashActive: Boolean;
Vracφ True, pokud je u odesφlanΘ zprßvy aktivovßna flash sms.

3. Prom∞nnΘ urΦenΘ pouze pro Φtenφ (funkce) pou₧φvanΘ v procedu°e DynInit nebo Send

IPhone: String;
Tel. Φφslo adresßta v mezinßrodnφm formßtu.

ICode: String;
K≤d stßtu z Φφsla adresßta (bez plusu a ·vodnφch nul).

Prefix: String;
P°edΦφslφ z Φφsla adresßta.

PhoneNP: String;
╚φslo adresßta bez p°edΦφslφ a k≤du zem∞.

Message: String;
Text odesφlanΘ zprßvy.

Email: String;
Emailovß adresa p°φjemce zprßvy.

Subject: String;
P°edm∞t emailu.

Phase: integer;
Fßze odesφlßnφ, Φφslovßno od nuly, tzn. ₧e Phase=0 je prvnφ fßze.

MyEmail: String;
Email u₧ivatele.

MyName: String;
JmΘno u₧ivatele.

MyICode: String;
K≤d stßtu z tel. Φφsla u₧ivatele.

MyPrefix: String;
P°edΦφslφ z tel. Φφsla u₧ivatele.

MyPhoneNP: String;
Tel. Φφslo u₧ivatele (bez plusu a ·vodnφch nul)

Password: String;
Heslo pro p°ihlßÜenφ k sms brßn∞.

UserPar1: String;
Hodnota u₧ivatelskΘ prom∞nnΘ.

UserPar2: String;
Hodnota u₧ivatelskΘ prom∞nnΘ.

UserPar3: String;
Hodnota u₧ivatelskΘ prom∞nnΘ.

UserPar4: String;
Hodnota u₧ivatelskΘ prom∞nnΘ.

4. Procedury a funkce pou₧φvanΘ v kdekoliv ve skriptu

function Translate(Key: String): String;
Podle klφΦe Key vyhledß v p°φsluÜnΘm .lng souboru odpovφdajφcφ p°eklad v zßvislosti na nastavenΘm jazyce.

5. Procedury a funkce pou₧φvanΘ v procedu°e DynInit nebo Send

procedure GetPage(URL, Message: String);
NaΦte strßnku URL a v okn∞ udßlostφ zobrazφ hlßÜku Message.

procedure PostPage(URL, Fields, Message: String);
Provede post strßnky URL. V parametru Fields jsou nßzvy prvk∙ formulß°e - ve formßtu 'nazev1=hodnota1&nazev2=hodnota2' atd. Nßsledn∞ se zobrazφ hlßÜka Message v okn∞ udßlostφ.

procedure GetPageEx(Frame: integer; URL, Message: String; Delay: integer);
RozÜφ°enß verze procedury GetPage:
Frame - po°adovΘ Φφslo framu, Φφslovßno od 1. Pokud je Frame=0, framy se ignorujφ.
URL - adresa strßnky.
Message - hlßÜka, kterß se zobrazφ v okn∞ udßlostφ.
Delay - pauza p°ed zapoΦetφm dalÜφ fßze odesφlßnφ(v milisekundßch).

procedure PostPageEx(Frame: integer; URL, Fields, Message: String; Delay: integer);
RozÜφ°enß verze procedury PostPage:
Frame - po°adovΘ Φφslo framu, Φφslovßno od 1. Pokud je Frame=0, framy se ignorujφ.
URL - adresa strßnky.
Fields - nßzvy prvk∙ formulß°e, jsou ve formßtu 'nazev1=hodnota1&nazev2=hodnota2' atd.
Message - hlßÜka, kterß se zobrazφ v okn∞ udßlostφ.
Delay - pauza p°ed zapoΦetφm dalÜφ fßze odesφlßnφ(v milisekundßch).

procedure AddResult(Search, Print: String; Action: integer);
Pokud je v prßv∞ naΦtenΘ strßnce nalezen °et∞zec Search, zobrazφ se v okn∞ udßlostφ °et∞zec Print a provede se akce Action (viz Konstanty pou₧φvanΘ v AddResult).

procedure AddLog(Message, Recipient: String; Error: Boolean; Info: String);
Zobrazφ hlßÜku Message v okn∞ udßlostφ. Recipient je jmΘno adresßta, Info jsou dopl≥ujφcφ informace. Pokud je Error=True, zobrazφ se vyk°iΦnφk.

function GetAoD: String;
Vrßtφ °et∞zec, kter² p°edstavuje zapnutou Φi vypnutou doruΦenku.

function GetFlash: String;
Vrßtφ °et∞zec, kter² p°edstavuje zapnutou Φi vypnutou flash sms.

function GetIdent: String;
Vrßtφ °et∞zec, kter² p°edstavuje zapnutou Φi vypnutou identifikaci.

function MD5(Source: String): String;
Vrßtφ hash °et∞zce Source.

function FindTextBetween(StartStr, EndStr: String): String;
Vrßtφ °et∞zec ze zdrojovΘho k≤du prßv∞ naΦtenΘ strßnky, kter² se nachßzφ mezi °et∞zci StartStr a EndStr.

function GetHTMLSource: String;
Vrßtφ zdrojov² k≤d prßv∞ naΦtenΘ strßnky (framu).

function GetPictureInput(URL: String): String;
Po zavolßnφ tΘto funkce se otev°e dialogovΘ okno se zobrazenou HTML strßnkou (adresa je v parametru URL). U₧ivatel mß pak mo₧nost zadat text, kter² funkce vrßtφ jako v²stup. Obvykle se pou₧φvß, pokud sms brßna po u₧ivateli vy₧aduje opsßnφ kontrolnφho °et∞zce.

V procedurßch GetPage, PostPage, GetPageEx a PostPageEx je mo₧nΘ jako hodnotu parametru Message zadat jeden z °et∞zc∙: "Msg_Sent, Msg_Loading, Msg_Sending, Msg_Expired, Msg_Later, Msg_WrongNum, Msg_Logging, Msg_Limit, Msg_Accepted, Msg_WrongPass, Msg_Reg". Ten pak bude nahrazen p°φsluÜn²m p°ekladem z .lng souboru. Stejn∞ tak funguje u procedury AddResult parametr Print.

5.1. Konstanty pou₧φvanΘ v AddResult

Success: integer = 1;
Zprßva byla ·sp∞Ün∞ odeslßna, bude vy°azena z fronty a p°idßna do historie.

Retry: integer = 2;
Bude ihned proveden nov² pokus o odeslßnφ.

Queue: integer = 3;
Zprßva z∙stane z∙stane za°azena ve front∞ a jejφ odesφlßnφ se ukonΦφ.

QueueWhen: integer = 4;
UkonΦφ se odesφlßnφ zprßvy, odesφlat se zaΦne znovu v Φas, kter² se zφskß z sms brßny.

Cancel: integer = 5;
Odesφlßnφ zprßvy bude ukonΦeno.

Resume: integer = 6;
Bude se pokraΦovat ve vykonßvanφ skriptu.

Exceeded: integer = 7;
Byl vyΦerpßn limit odeslan²ch prßv pro danou sms brßnu. SuccessContinue: integer = 8;
Zprßva byla ·sp∞Ün∞ odeslßna, bude vy°azena z fronty a p°idßna do historie a potΘ jeÜt∞ bude zavolßna dalÜφ fßze. V tΘto fßzi ji₧ nesmφte odesφlat! Pou₧ijte ji jen na zobrazenφ n∞jak²ch u₧iteΦn²ch informacφ z odpov∞di brßny.

6. P°φklady skript∙

Jednoduch² skript
Slo₧it∞jÜφ skript

Nahoru